package main

import "fmt"

// 定义一个接口
type Reader interface {
	Read()
}

// 再定义一个接口
type Writer interface {
	Write(s string)
}

// 定义第三个接口，嵌套上面的两个接口
type ReadWriter interface {
	Reader
	Writer
}

// 定义一个结构体
type file struct {
	content string
}

func (f *file) Read() {
	fmt.Println(f.content)
}

func (f *file) Write(s string) {
	f.content = s
	fmt.Println("写入数据:", s)
}

// 这个函数是对接口进行操作，上面的file类型实现了接口的所有方法
func CheckChange(rw ReadWriter, s string) {
	rw.Read()
	rw.Write(s)
	rw.Read()
}

func main() {
	var f file = file{"Hello"}
	CheckChange(&f, "How are you")
}
